package com.hruiworks.campusgroup.service;

import com.hruiworks.campusgroup.common.PageVO;
import com.hruiworks.campusgroup.pojo.entity.ActivityGrade;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hruiworks.campusgroup.pojo.entity.User;

import java.util.List;

/**
* @author jiushui
* @description 针对表【activity_grade(活动评分)】的数据库操作Service
* @createDate 2025-03-28 18:08:00
*/
public interface ActivityGradeService extends IService<ActivityGrade> {

    /**
     * 提交评分
     * @param activityId 活动id
     * @param grade 评分
     * @param comment 评价
     * @param user 用户
     * @return 插入成功返回true
     */
    Boolean submitGrade(Long activityId, Integer grade, String comment, User user);

    /**
     * 获取用户对于某项活动的评分
     * @param activityId 活动id
     * @param user 当前用户
     * @return
     */
    ActivityGrade getSelfGrade(Long activityId, User user);

    /**
     * 更新历史评分
     * @param activityId 活动id
     * @param grade 评分
     * @param comment 评价
     * @param user 用户
     * @return 更新成功返回true
     */
    Boolean updateSelfGrade(Long activityId, Integer grade, String comment, User user);

    /**
     * 获取某个活动的评分和评价，分页查询
     * @param current 当前页
     * @param pageSize 单页大小
     * @param activityId 活动id
     * @return 相关的评分
     */
    PageVO<ActivityGrade> pageActivityGrade(Long current, Long pageSize, Long activityId);

    /**
     * 活动评论数量
     * @param activityId 活动id
     * @return 已有的评论数量
     */
    Long activityCommentCount(Long activityId);

}
